Keywords: Nmap, crackmapexec, samba, evil-winrm, privileged escalation.
Palabras Claves: Nmap, crackmapexec, samba, evil-winrm, escalada de privilegios.
Se procede a enumerar los puertos abiertos de esta máquina usando la herramienta Nmap, que mediante el parámetro -sC envia un conjunto de scripts que permite enumerar los servicios que estén alojados en los puertos expuestos, y el parámetro -sV permite obtener la versión de los servicios que se van enumerando.
En este análisis se logra ver que existen varios puertos abiertos, por lo que puede llegar a ser abrumador, por lo que será mejor ir filtrando por lo más conocidos hasta llegar al que sea un véctor de entrada para uno como atacante, en este caso se enfocará más en los que indiquen que son HTTP. Utilizando el archivo que creamos llamado targeted vamos a filtar usando grep los puertos que tengan servicio HTTP expuerto.
El primer puerto a revisar porque es el más común de encontrar vulnerabilidades es el puerto 80, pero además hay otro puerto el 5985 que tiene mi interés que es el servicio winrm, cual si obtengo credenciales válidad se puede obtener una shell a la máquina. Pero por ahora se va a enumerar lo que está alojado en el puerto 80.
Se observa que existe una página web que parece ser un panel de administración de una impresora. Por lo que vamos a ir en cada tab en búsqueda de algún véctor de entrada.
En la sección de settings se puede observar que existe campos de host, puerto, usuario y contraseña, este último campo no interesa porque son solo asteriscos.
Se va a probar cambiando el host para ver si envía alguna petición, el host que se colocará es la ip de nuestra máquina de atacante y nos pondremos en escucha por el puerto 389.
En la respuesta se lográ observar unas credenciales que pueden servir para inicar sesión en algunos de los servicios expuertos, debido a que se procede a comprobar con crackmapexec que el servicio Samba esté expuesto.
Con smbclient verificamos si se puede inciar con una null sesión, comprobamos que es posible pero no permite hacer mucha cosa.
Se va a validar las credenciales, utilizando crackmapexec para el servicio de samba, y confirmamos que son credenciales válidas.
Se ingresa con smbclient utilizando las credenciales que tenemos pero tampoco se logra ver mucho más.
Recordando que el puerto 5985 está expuesto se va a comprobar que las credenciales válidas para samba ahora sean tambien para \textbf{winrm}. En caso que salga pwn3d! sabremos que lo son y se podrá obtener una reverse shell utilizando evil-winrm.
Las credenciales son válidas para winrm, se utilizará evil-winrm para conectarnos a la máquina como svc-printer y obtener la primera flag.
Obteniendo el acceso como el usuario svc-printer, se va a proceder a buscar formas para poder escalar de privilegios. Por tanto, se procede a enunerar las permisos de este usuario.
Ahora se enumerará tambien los grupos al que pertenece este usuario para observar si pertenece a uno que se pueda aprovechar de los permisos y capacidades que presente este grupo y lograr la escalada de privilegios.
Se observa que el usuario pertenece al grupo Remote Management Use por lo que por ello es posible conectarse con winrm a este usuario, y tambien pertenece al grupo Server Operator mismo que puede iniciar, parar y editar servicios. Pero antes de modificar algún servicio, se va a pasar a la máquina el nc64.exe que es el netcat para windows.
Ya teniendo el netcat en la máquina, pasamos a verificar si se puede crear un servicio. Pero vemos que no tenemos permiso para ello.
Viendo que no se tiene permiso para la creación de servicios procedemos a listar servicio en el sistema de manera que iremos probando por cado uno para confirmar cual podemos modificar el binPath.
Despues de ir probando uno a uno cada servicio, el servicio VMTools es el que permite modificar el binPath, por lo que se va a ejecutar netcat para que envíe una shell a nuestra máquina por el puerto 443, y como este servicio es privilegiado tendremos una shell como nt authority system, es decir como administrador.
Se procede a parar el servicio VMTools.
En la máquina de atacante, se pone en escucha por el puerto 443, y luego se inicia el servicio VMTools para obtener la shell como nt authority system. De manera que se podrá obtener la última flag y se terminaría aquí la máquina Return.